package com.cpone.cloudweb.utils.bak;

import java.io.File;

public class FileHelp {
	//��֤����·���ַ����Ƿ�Ϊ��ȷ·����������ʽ
	private static String matches="[A-Za-z]:\\\\[^:?\"><*]*";
	//ͨ��sPath.matches(matches)�����ķ���ֵ�ж��Ƿ���ȷ
	//sPathΪ·���ַ���
	/**
	 * ����·��ɾ��ָ����Ŀ¼���ļ������۴������
	 * @param sPath Ҫɾ����Ŀ¼���ļ�
	 * @return ɾ���ɹ�����true�����򷵻�false
	 */
	public boolean DeleteFolder(String sPath){
		boolean flag = false;
		File file = new File(sPath);
		//�ж�Ŀ¼���ļ��Ƿ����
		if(!file.exists()){
			return flag;
		}else{
			//�ж��Ƿ�Ϊ�ļ�
			if(file.isFile()){//Ϊ�ļ�ʱ����ɾ���ļ�����
				return deleteFile(sPath);
			}else{//ΪĿ¼�ǵ���ɾ��Ŀ¼����
				return deleteDirectory(sPath);
			}
		}
	}
	
	/**
	 * ɾ�������ļ�
	 * @param sPath ��ɾ���ļ����ļ���
	 * @return �����ļ�ɾ���ɹ�����true�����򷵻�false
	 */
	public boolean deleteFile(String sPath){
		boolean flag = false;
		File file = new File(sPath);
		//·��Ϊ�ļ��Ҳ�Ϊ�������ɾ��
		if(file.isFile()&&file.exists()){
			file.delete();
			flag=true;
		}
		return flag;
	}
	
    /**
     * ɾ��Ŀ¼���ļ��У��Լ�Ŀ¼�µ��ļ�
     * @param sPath ��ɾ��Ŀ¼���ļ�·��
     * @return Ŀ¼ɾ���ɹ�����true �����򷵻�false
     */
    public boolean deleteDirectory(String sPath){
    	//���sPath�����ļ��ָ�����β���Զ�����ļ��ָ���
    	if(!sPath.endsWith(File.separator)){
    		sPath=sPath+File.separator;
    	}
    	File dirFile = new File(sPath);
    	//���dir��Ӧ���ļ������ڣ����߲���һ��Ŀ¼�����˳�
    	if(!dirFile.exists() || !dirFile.isDirectory()){
    		return false;
    	}
    	boolean flag = true;
    	//ɾ���ļ����µ������ļ���������Ŀ¼��
    	File[] files = dirFile.listFiles();
    	for(int i=0;i<files.length;i++){
    		//ɾ�����ļ�
    		if(files[i].isFile()){
    			flag = deleteFile(files[i].getAbsolutePath());
    			if(!flag)break;
    		}else{//ɾ����Ŀ¼
    			flag = deleteDirectory(files[i].getAbsolutePath());
    			if(!flag)break;
    		}
    		
    		
    	}
    	if(!flag)return false;
    	//ɾ����ǰĿ¼
    	if(dirFile.delete()){
    		return true;
    	}else{
    		return false;
    	}
	}
    
    public static void main(String[] args){
    	FileHelp hfc = new FileHelp();
    	String path="D:\\aBC\\123\\Ab1";
    	boolean result = hfc.DeleteFolder(path);
    	System.out.println(result);
    }
}
